#include <iostream>
#include <algorithm>
#include <vector>
#include <functional>
#include <boost/bind.hpp>
#include <boost/shared_ptr.hpp>

using namespace std;

struct A{};
struct B{};
struct C:public A{};

int main(int atrgc, char** argv)
{
	int j;
	if( typeid(j)==typeid(int) )
		cout<<"j is int"<<endl;
	
	double db = 5.6;
	if( typeid(db)==typeid(int) )
		cout<<"db is int"<<endl;

	A a;
	B b;
	C c;

	if( typeid(a)==typeid(b) )
		cout<<"A B is equal."<<endl;

	if( typeid(a)==typeid(c) )
		cout<<"A C is equal."<<endl;

	A *k = new C;
	A *p = new A;
	if( typeid(p)==typeid(k) )
		cout<<" p k is equal."<<endl;

	if( typeid(*p)==typeid(*k) )
		cout<<"*p *k is equal."<<endl;

	return 0;
}
